void ProcessPut()
{

	int nbytes, i, j;
	int FileDes;
	char SFile[255], DFile[255]; /* Source file path, Dest File path */
	struct stat buf;

	i = 0;
	while(argu[i] != '\0'	&&	argu[i] != ' ')
	{
		SFile[i] = argu[i];
		i++;
	}
	SFile[i] = '\0';

	j = 0;
	i++;
	while(argu[i] != '\0')
	{
		DFile[j] = argu[i];
		i++;
		j++;
	}
	DFile[j] = '\0';
	
	if(SFile[0] == '\0'	||	DFile[0] == '\0')
	{
		fprintf(stderr, "error, no files appointed.\nUsage:Put SourceFileName DestFileName\n\a");
		return;
	}
	
	if(lstat(SFile, &buf) < 0)
	{
		fprintf(stderr, "lstat error:%s\n\a", 	strerror(errno));
		return;
	}

	if((FileDes=open(SFile, O_RDONLY)) == -1)
	{
		fprintf(stderr, "Open file error:%s\n\a", 	strerror(errno));
		return;
	}
	
	/* Only transfer command and path of dest file. */
	strcpy(InputBuf, command);
	strcat(InputBuf, " ");
	strcat(InputBuf, DFile);
	if(write(sockfd, InputBuf, strlen(InputBuf)) == -1)
	{
		fprintf(stderr, "Write error:%s\n\a", 	strerror(errno));
		return;
	}

	if(write(sockfd, &buf, sizeof(buf)) == -1)
	{
		fprintf(stderr, "Write error:%s\n\a", 	strerror(errno));
		return;
	}

	while((nbytes=read(FileDes, pMessageBuffer, sizeof(pMessageBuffer))) > 0)
	{
		if(write(sockfd, pMessageBuffer, nbytes) != nbytes)
		{
			fprintf(stderr, "Write error:%s\n\a", 	strerror(errno));
			return;
		}
	}

	if(nbytes < 0)
	{
		fprintf(stderr, "Write error:%s\n\a", 	strerror(errno));
		return;
	}

	close(FileDes);
}
